PreviousNextTracker indexSee it online !

(232/308) 1720 - Console: test area behaves differently from error parsing

I use a perl script to format the error output of my compiler in a way that can be easily parsed by the error list. This worked fine up to version 1.9 of the error list (which I still use today).
With the more recent versions (since the german localization, 2.0 ?) I get a very strange behaviour: I check the error output in the plugin options and get a display of all included errors and warnings. But in real life, the error list shows just nothing. I have tried to modify my perl script in several ways (output to std out, output to error out, output to both) without any change.

Submitted jomabrueloe - 2013-06-14 13:01:48 Assigned synh
Priority 5 Labels
Status open Group None
Resolution None

Comments

2013-06-14 14:57:49
ezust

This sounds like it is related to Console plugin?
Let me confirm. Are you saying that from Console plugin options - error patterns, you can "test" the Perl regexp and it shows you the errors, as expected, but if you paste those same errors in a text file, and "cat" (or "type" from windows) it from the Console System shell, you do not see the same errors in ErrorList? Because I just tried those exact steps and it works for me.

Please give me more details on how to reproduce your issue.



Do you have the ErrorList Dockable already visible when you do this?

2013-06-14 14:58:49
ezust

- **status**: open --> pending-works-for-me

2013-06-17 05:54:49
jomabrueloe

Hi, thanks for your response.

Yes, thats the way I do it, only I don't use a temporary file but direct piping via perl. I'm gonna try that way also and give you the result.
Regarding your 2nd question: I use the error list docked an the bottom of jedit.

2013-06-17 07:45:05
jomabrueloe

Hi,

I just tried it: with the new version (and the latest console plugin), using the type command in the console results in a plain display with empty error list. Using the same with my old (working) configuration, the errros and warnings are shown as well in the console (colored text) as in the error list.
I though it would be helpful for you to see, which other plugins are used. Therefore I attach two jpegs, one with the working and one with the not working configuration.

Jo

2013-06-17 07:51:07
jomabrueloe

jedit_plugins_not_working.jpg (45.3Kio)

2013-06-17 07:52:37
jomabrueloe

jedit_plugins.jpg (23.7Kio)

2013-06-17 09:31:31
jomabrueloe

Error-Output.txt (4.9Kio)

2013-06-17 16:19:42
ezust

Ok, this is the windows platform, and german localization.

If you switch back to English locale, does the problem goes away?

If so, please let us know. If not, I would suggest trying to see how else the settings differ between the working vs non-working configurations.
Many error matchers in Console do you have enabled? Which ones are they? Is generic one of them? Can you make the "generic" error trigger, or is your problem specific to perl errors?
I have a file called asdf.txt that looks like this:
/etc/apt/sources.list:5: error\! This is an arbitrary message.

and whenever I cat it, I see errors in my errorlist. Do you?

I will also go to windows and see if I can reproduce your issue by switching to german.


2013-06-17 16:31:57
ezust

I tried typing the Error-Output.txt and it is not detected as a Perl error by the Perl error regexp, which for me is this:
(.+) at (\[^<>\]+) line (\d+)(\.?|, (.+))
Is that the same regexp you have?
If so, I can reproduce your error but it seems to me there is something wrong with the regexp. Is this really the output of the perl command?

2013-06-17 16:36:48
ezust

some perl error strings to test your regexp

alan-perl-errors.txt (514B)

2013-06-17 16:37:16
ezust

I attached alan-perl-errors.txt which works for my perl error regexp. See if typing that from Console gives you perl errors.

2013-06-18 05:28:41
jomabrueloe

Hi,
thanks for your efforts\! I have to apologize, that I wasn't that clear: I use a Tasking C-Compiler for a microcontroller. But because the error output of this one is very hard to handle (2 lines per error ...) I use the perl script to transform it to an conveniant pattern. Than - I have to apologize again for not transmitting this already - I use an own error pattern to parse the errors and warnings. I attach the error pattern as a screen shot.

Thanks again

Jo

2013-06-18 05:29:23
jomabrueloe

error-pattern.jpg (48.9Kio)

2013-06-18 06:02:06
ezust

I have no idea/didn't check why your pattern worked before and doesn't now. Are you sure the regexps are the same?
I can reproduce your current issue. It is really strange.
I don't know why when testing the pattern, it shows things working but when I cat it, it is not detected.
\*HOWEVER\*, there is a workaround:
by simply adding a $ at the end of each of those regexps. The problem goes away.



2013-06-18 06:02:06
ezust

- **status**: pending-works-for-me --> open-works-for-me

2013-06-18 06:04:07
ezust

- **status**: open-works-for-me --> open

2013-06-18 06:06:44
ezust

- **summary**: Error list does not show errors --> Console: Some Error Regexps require a $ at the end to work

2013-06-18 06:12:53
ezust

- **summary**: Console: Some Error Regexps require a $ at the end to work --> Console: test area behaves differently from error parsing

2013-06-18 06:12:53
ezust

Sorry, it was not just a addition of the $ at the end. I changed your patterns to this:
^(E.+) :: (.+) :: (\d+)$
^(W.+) :: (.+) :: (\d+)$

2013-06-18 06:27:05
ezust

And for some reason, I only see errors and no warnings. There might be 2 bugs here, one related to how errors are parsed and another related to warnings.

2013-06-18 13:00:39
jomabrueloe

New info:
- using the english localisation doesn't change the behavior
- the error is dedicated to the parser line; using "W" in the "error" parsing line results in display of warnings but errors
- the "extra line" parsing line does not work either

2013-06-18 16:03:13
ezust

So to summarize, the original test case is this:

The error/warning patterns were these:
^(E.+) :: (.+) :: (.+)$
^(W.+) :: (.+) :: (.+)$

For a "test area", I pasted some lines from 85-103 of Error-Output.txt which is attached.

When I "test/commit" the regexes against the pasted text, it works fine.

But if I "cat" the Error-Output.txt file from Console, none of these errors are picked up.

Personally, I have not worked on this code recently, so I hope one of the other engineers (Dale or Artem) will take a look at this. Also, I am pretty sure this has nothing to do with the ErrorList plugin.

2013-06-18 16:05:31
ezust

- **assigned_to**: nobody --> synh

2013-06-18 22:48:07
ezust

What version of Console is the latest version that works for you?

2013-06-18 23:50:03
ezust

Nevermind, I see it is Console 4.4.4 (from your working configuration) from your screenshot.

2013-06-19 09:25:09
synh

Probably it is related to handling of line's breaks '\n', '\r\n'.
I'll research this during the weekend.